Amazon Redshiftの ANALYZE COMPRESSIONの圧縮可能率に関して
2017年の2月にZSTDエンコードが追加され、ANALYZE COMPRESSIONで分析するとZSTDエンコードが推奨されることが多くなりました。
Amazon Redshift: 【新機能】列圧縮の圧縮エンコードとして、ZSTDが追加されました
ZSTDエンコードに変更するとどの程度容量が削減されるのでしょうか。以下のANALYZE COMPRESSIONのページに
ANALYZE COMPRESSION - Amazon Redshift
圧縮分析を行い、分析されたテーブルの推奨列エンコードスキームのレポートを生成します。レポートには、列ごとに現在のエンコードと比較したディスク容量の圧縮可能率の推定値が含まれます。
とありますのでANALYZE COMPRESSIONは現在のエンコードと比較した結果のようです。それでは圧縮可能率の推定値とは何なのか具体例を挙げて見ていきましょう。
上記のページを見ると以下のような表があります
Table | Column | Encoding | Est_reduction_pct --------+----------------+----------+------------------ ・・・ listing | dateid | lzo | 96.94 ・・・
Est_reduction_pct列の値が圧縮可能率の推定値になります。
この例でいうとlistingテーブル、dateidカラムの現在のサイズが100MBの場合、lzoエンコードに変更すると96.94%削減され3.06MBになるという見積になります。圧縮可能率の推定値が大きいほど効果があるということですね。ただしこの値は推定値なので絶対このサイズになるというわけではないです。その点を注意しましょう。